.videos {
  display: grid;
  align-items: flex-start;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  grid-gap: 1rem;
}

.videos>div video {
  transition: filter 400ms ease;
}

.videos>div:hover video {
  filter: brightness(1.1);
}

.badges {
  display: flex;
  margin: 0.4em -0.3rem;
}

.badges>* {
  margin: 0 0.3rem;
}

.playerWrapper {
  position: relative;
  padding-top: 56.25%/* Player ratio: 100 / (1280 / 720) */
}

.player {
  position: absolute;
  top: 0;
  left: 0;
}